package security

import (
	"fmt"
	"golang.org/x/crypto/bcrypt"
)

// EncryptPassword 密码加密
func EncryptPassword(password string) (string, error) {
	// 使用默认成本（cost）生成哈希密码，通常是 bcrypt.DefaultCost（=10）
	hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
	if err != nil {
		return "", err
	}
	return string(hashedPassword), nil
}

// MatchesPassword
// 密码匹配
func MatchesPassword(rawPassword string, encodedPassword string) error {
	//密码校验
	if err := bcrypt.CompareHashAndPassword([]byte(encodedPassword), []byte(rawPassword)); err != nil {
		return fmt.Errorf("用户名或密码错误")
	}
	return nil
}
